package com.lam.mall.mapper;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lam.mall.app.vo.ProductSimpleVo;
import com.lam.mall.app.vo.SearchProdVo;
import com.lam.mall.app.vo.TagProductVo;
import com.lam.mall.entity.Product;

/**
 * 商品管理Mapper接口
 * 
 * @author admin
 * @date 2023-04-20
 */
public interface ProductMapper extends BaseMapper<Product>{

	/**
     * 更新商品库存
     * @param product
     * @return
     */
    int updateStocks(Product product);
    
    @Update("update mall_product set status=-1 where id=#{id}")
	int logicDeleteById(@Param("id")String id);

    /**
     * 返回库存
     * @param prodCollect
     */
    void returnStock(@Param("prodCollect") Map<String, Integer> prodCollect);
    /**
     * 修改销量
     * @param prodCollect
     */
    void updateSoldNum(@Param("prodCollect") Map<String, Integer> prodCollect);

    /**
     * 根据标签id获取商品
     * @param tagId
     * @return
     */
    TagProductVo tagProdList(@Param("tagId") String tagId);

    /**
     * 获取分组商品列表
     * @return
     */
//    List<TagProductVo> tagProdList();

    /**
     * 获取用户的收藏商品列表
     * @param page
     * @param userId
     * @return
     */
    List<ProductSimpleVo> collectionProds(@Param("userId") String userId);
    List<ProductSimpleVo> browseProds(@Param("userId")String userId);

	List<ProductSimpleVo> pageByPutAwayTime();

	List<ProductSimpleVo> pageByTagId(@Param("tagId")String tagId);

	List<ProductSimpleVo> moreBuyProdList();

	List<ProductSimpleVo> pageByCategoryId(@Param("categoryId")String categoryId);

	List<SearchProdVo> getSearchProdPageByProdName(@Param("prodName")String prodName, @Param("sort")Integer sort, 
			@Param("orderBy")Integer orderBy);



}
